package com.aaa.service.impl;

import cn.hutool.core.util.ObjectUtil;

import com.aaa.service.LoginService;
import com.aaa.service.UserInfoService;

import com.aaa.util.MyTools;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author yudejie2020
 */
@Service
public class LoginServiceImpl implements LoginService {

    @Autowired
    UserInfoService userInfoService;

    @Override
    public boolean checkUser(Map<String, Object> map) {
        //缓存明文密码，临时用
        String passwordTemp=map.get("searchPassword").toString();
        //1，根据用户名查询用户的所有信息 ，去掉密码的key
        //根据用户名查询所有的数据
        List<Map<String,Object>> mapList=userInfoService.findAllUserInfoByName(map);
        if (mapList!=null&&mapList.size()>0){
            Map<String,Object> user=mapList.get(0);
            //2、根据查询出来的盐值和传入的明文密码加密产生新密码
            String salt=user.get("salt").toString();

            //3、校验查询出来的密文和新密码是否一致
            //获取数据库中的密文
            String passwordDateBase=user.get("password").toString();
            //根据登陆页面重新加密生成的密文
            String passwordNew= MyTools.makePasswordSalt(passwordTemp,salt);
            if(passwordDateBase.equals(passwordNew)){
                return true;
            }
        }
        return false;
    }

    /**
     * 根据用户名查询一行数据
     * @param map
     * @return
     */
    @Override
    public Map<String, Object> findUserInfoByName(Map map) {
        List<Map<String,Object>> mapList=userInfoService.findAllUserInfoByName(map);
        if (ObjectUtil.isNotEmpty(mapList)){
            return mapList.get(0);
        }
        return null;
    }
}
